package com.cleaningcloud.cld.mapper.mini;


import com.cleaningcloud.cld.domain.CldRegularSubmit;
import com.cleaningcloud.cld.domain.CldWorkplan;
import com.cleaningcloud.cld.domain.CldWorkplanDetails;
import com.cleaningcloud.cld.domain.CldWorkplanSubmit;
import com.cleaningcloud.cld.domain.dto.CldRegularMeetingDto;
import com.cleaningcloud.cld.domain.dto.CldRegularPlanDto;
import com.cleaningcloud.cld.domain.dto.CldWorkplanDto;
import com.cleaningcloud.cld.domain.vo.*;

import java.util.List;
import java.util.Map;

public interface MiniProjectMapper {

    //---------------------------------------  工作计划相关 ---------------------------------------
    /**
     * @Author Shaw
     * @Description 根据工作计划ID查询
     * @date: 2025-06-10 17:19
     * @param: //TODO
     */
    CldWorkplanVo getWorkPlanById(Long workPlanId);

    /**
     * @Author Shaw
     * @Description 根据工作计划ID查询计划明细列表
     * @date: 2025-06-10 17:33
     * @param: //TODO
     */
    List<CldWorkplanDetailsVo> getWorkPlanDetailsByWorkPlanIdList(CldWorkplanDetailsVo cldWorkplanDetailsVo);

    /**
     * @Author Shaw
     * @Description 根据工作计划详情加载提交信息
     * @date: 2025-06-11 9:28
     * @param: //TODO
     */
    List<CldWorkplanSubmit> getWorkPlanSubmitByWorkPlanDetailsId(CldWorkplanSubmitVo cldWorkplanSubmitVo);

    /**
     * 日清洁工作计划列表查询
     *
     * @param cldWorkplanDto
     * @return
     */
    List<CldWorkplan> getSubmitWorkPlanList(CldWorkplanDto cldWorkplanDto);

    /**
     * 工作计划列表查询
     *
     * @param cldWorkplanDto
     * @return
     */
    List<CldWorkplan> getWorkPlanList(CldWorkplanDto cldWorkplanDto);

    /**
     * 工作计划  (待审核 未通过 已通过)
     *
     * @param cldWorkplanDto
     * @return
     */
    List<CldWorkplanVo> getWorkPlanListDate(CldWorkplanDto cldWorkplanDto);

    /**
     * 获取已提交工作计划日期列表
     *
     * @param cldWorkplanDto
     * @return
     */
    List<Map<String,Object>> getWorkPlanRowDateList(CldWorkplanDto cldWorkplanDto);

    /**
     * 根据已提交工作计划日期获取组名
     *
     * @param cldWorkplanDto
     * @return
     */
    List<Map<String,Object>> getWorkPlanGroupNameByRowDateList(CldWorkplanDto cldWorkplanDto);


    //---------------------------------------  例会相关 ---------------------------------------
    /**
     * @Author Shaw
     * @Description 查询当天和历史例会记录
     * @date: 2025-06-11 13:47
     * @param: //TODO
     */
    List<CldRegularMeetingVo> getRegularMeetingList(CldRegularMeetingDto cldRegularMeetingDto);

    /**
     * @Author Shaw
     * @Description 查询例会计划列表记录
     * @date: 2025-06-11 15:05
     * @param: //TODO
     */
    List<CldRegularPlanVo> getRegularPlanList(CldRegularPlanDto cldRegularPlanDto);

    /**
     * 例会计划列表查看
     * @param cldRegularPlanDto
     * @return
     */
    List<CldRegularPlanVo> regularPlanList(CldRegularPlanDto cldRegularPlanDto);

    /**
     * 查询例会计划员工提交状态
     * @param regularPlanId
     * @param projectId
     * @return
     */
    List<Map<String,Object>> getRegularPlanStaff(CldRegularPlanDto cldRegularPlanDto);

    /**
     * 查询例会计划明细
     * @param regularPlanId
     * @param projectId
     * @return
     */
    CldRegularPlanVo getRegularPlanById(CldRegularPlanDto cldRegularPlanDto );

    /**
     * 查询例会计划提交明细
     * @param cldRegularSubmit
     * @return
     */
    List<CldRegularPlanVo> getRegularPlanStaffSubmit(CldRegularSubmit cldRegularSubmit);

}
